/**
 * @author Xiang.Yu
 * @version 0.0.1
 * @date 2017/3/9
 * @description axiosConfig
 */
import Qs from 'qs'
import axios from "axios";
import Vue from 'vue';
//config
const config = {
  //请求的接口，在请求的时候，如axios.get(url,config);这里的url会覆盖掉config中的url
  url: '/',

  // 请求方法同上
  method: 'get', // default
  // 基础url前缀
  baseURL: '',


  transformRequest: [function (data) {
    // 这里可以在发送请求之前对请求数据做处理，比如form-data格式化等，这里可以使用开头引入的Qs（这个模块在安装axios的时候就已经安装了，不需要另外安装）
    data = Qs.stringify(data);
    return data;
  }],

  transformResponse: [function (data) {
    // 这里提前处理返回的数据
    return data;
  }],

  // 请求头信息
  headers: {'X-Requested-With': 'XMLHttpRequest'},

  //parameter参数
  params: {
    '_uid_': global_student,
    '_token_': global_token
  },

  //post参数，使用axios.post(url,{},config);如果没有额外的也必须要用一个空对象，否则会报错
  data: {
    '_uid_': global_student,
    '_token_': global_token
  },

  //设置超时时间
  timeout: 1000000,
  //返回数据类型
  responseType: 'json', // default
  // `withCredentials` indicates whether or not cross-site Access-Control requests
  // should be made using credentials
  withCredentials: true, // default
};

let ajax = axios.create(config);

ajax.interceptors.response.use((response) => {
  if (response.data.success) {
    return response.data.obj;
  } else {
    if (response.data.obj === 'login') {
      console.error(response.data.msg);
      localStorage.clear();
      window.location.href ='http://'+window.location.host+'/';
    }
    return Promise.reject(response.data.msg);
  }
}, (error) => {
  console.error(error);
  return Promise.reject('请检查网络状态');
});


export default ajax;

